Алгебраические уравнения
Одно уравнение с одним
неизвестным
Рассмотрим одно
алгебраическое уравнение с одним неизвестным х.
f(x}=0, например, sin(x)=0.
Для решения таких уравнений MathCAD имеет встроенную функцию root,которая, в
зависимости от типа задачи, может включать либо два, либо четыре аргумента и,
соответственно, работает несколько по-разному.
- root(f(х),х);
- root(f(х),х,а,b);
f (х) - скалярная функция, определяющая
уравнение ;
х - скалярная переменная, относительно
которой решается уравнение;
а,b - границы интервала, внутри которого
происходит поиск корня.
Первый тип функции root требует дополнительного задания начального значения (guess
value) переменной х. Для этого нужно просто предварительноприсвоить х некоторое
число. Поиск корня будет производиться вблизи этого числа. Таким образом,
присвоение начального значения требует априорной информации о примерной
локализации корня.

Обратите внимание, что хотя
уравнение имеет бесконечное количество корней , MathCAD находит (с заданной
точностью) только один из них, х0, лежащий наиболее близко к х=0.5.
Если задать другое начальное значение, то решением будет другой корень
уравнения. Таким образом, для поиска корня средствами MathCAD требуется его
предварительная локализация. Это связано с особенностями выбранного численного
метода, который называется методом секущих.
Иногда удобнее задавать не
начальное приближение к корню, а интервал[а,b], внутри которого корень заведомо
находится. В этом случае следует использовать функцию root с четырьмя
аргументами, а присваивать начальное значение х не нужно. Поиск корня будет
осуществлен в промежутке между а и b
альтернативным численным методом (Риддера или Брента).
![]()
Когда root имеет четыре
аргумента, следует помнить о двух ее особенностях:
- внутри интервала [а,ь] не должно находиться более одного корня, иначе будет
найден один из них, заранее неизвестно какой именно;
- значения f (а) и f(b) должны иметь разный знак, иначе будет выдано сообщение
об ошибке.
Корни полинома
Если функция f (х) является полиномом, то все его корни можно
определить, используя встроенную функцию polyroots(v), где v - вектор,
составленный из коэффициентов полинома.
Результатом действия функции polyroots является вектор, составленный из N
корней рассматриваемого полинома.

Обратите внимание, что
численный метод вместо двух из трех действительных единичных корней (иными
словами, кратного корня 1) выдает два мнимых числа. Однако малая мнимая часть
этих корней находится в пределах погрешности, определяемой константой TOL, и не
должна вводить пользователей в заблуждение. Просто нужно помнить, что корни
полинома могут быть комплексными, и ошибка вычислений может сказываться как на
действительной, так и на комплексной части искомого корня.
Системы уравнений
Рассмотрим решение системы n нелинейных
уравнений с m неизвестными
Hекоторые скалярные функции от скалярных переменных и, возможно, от еще
каких-либо переменных. Уравнений может быть как больше, так и меньше числа
переменных. Заметим, что систему можно формально переписать в виде f(x)=0, где
х - вектор, составленный из переменных xi,x2,... ,хм, a f
(x) - соответствующая векторная функция.
Для решения систем имеется специальный вычислительный блок, состоящий из
трех частей, идущих последовательно друг за другом:
- Given - ключевое слово;
- система, записанная логическими операторами в виде равенств и, возможно,
неравенств;
- Find (xi,... ,xm) - встроенная функция для
решения системы относительно переменных xi,... ,хm.

Пока мы рассмотрели пример
системы из двух уравнений и таким же числом неизвестных, что встречается
наиболее часто. Но число уравнений инеизвестных может и не совпадать. Более
того, в вычислительный блок можно добавить дополнительные условия в виде
неравенств. Например, введение ограничения на поиск только отрицательных
значений х в рассмотренный выше приведет к нахождению другого решения.

![]()
Система может быть представлена как A*X=B, её решение: Приближенное
решение уравнений
Иногда приходится заменять
задачу отделения корней системы уравнений задачей поиска экстремума функции
многих переменных. Например, когда невозможно найти решение с помощью функции
Find, можно попытаться потребовать вместо точного выполнения уравнений условий
минимизировать их невязку. Для этого следует в вычислительном блоке вместо
функции Find использовать функцию Minerr, имеющую тот же самый набор параметров


Пример приближенное решение
уравнения k-x2+y2=o, которое при любом значении
коэффициента k имеет единственный точный корень (х=0,у=0). Тем не менее при
попытке решить его функцией Find для больших k, порядка принятых в примере,
происходит генерация ошибки"No solution was found" (Решение не
найдено). Это связано с иным поведением функции f (x,y)=k-x2+y2
вблизи ее корня. Ее график не пересекает
плоскость f (х,у)=0, а лишь касается ее в точке (х=0,у=0). Поэтому и найти корень
изложенными в предыдущем разделе градиентными методами сложнее, поскольку
вблизи корня производные f (х,у) близки к нулю, и итерации могут уводить
предполагаемое решение далеко от корня.
Ситуация еще более ухудшается, если наряду с корнем типа касания имеются
(возможно, весьма удаленные) корни типа пересечения.
Тогда попытка решить уравнение или систему уравнений с помощью функции Find
может приводить к нахождению корня второго типа, даже если начальное
приближение было взято очень близко к первому. Поэтому если вы предполагаете,
что система уравнений имеет корень типа касания, намного предпочтительнее
использовать функцию Minerr, тем более, что всегда есть возможность проверить
правильность решения уравнений простой подстановкой в них полученного решения.

Как видно из примера, в
качестве результата выдаются значения переменных, наилучшим образом
удовлетворяющие уравнению и неравенствам внутри вычислительного блока. Решение,
выдаваемое функцией Minerr в рассматриваемом примере, не является единственным,
поскольку множество пар значений (х,у) в равной степени минимизирует невязку
данной системы уравнений и неравенств, поэтому для различных начальных значений
будут получаться разные решения.
Экстремум функции одной
переменной
Поиск экстремума функции включает в себя задачи нахождения локального и глобального
экстремума. Последние называют еще задачами оптимизации.
В MathCAD с помощью встроенных функций
решается только задача поиска локального экстремума. Чтобы найти глобальный
максимум (или минимум),требуется либо сначала вычислить все их локальные
значения и потом выбрать из них наибольший (наименьший), либо предварительно просканировать
с некоторым шагом рассматриваемую область, чтобы выделить из нееподобласть
наибольших (наименьших) значений функции и осуществить поиск глобального
экстремума, уже находясь в его окрестности. Последний путь таит в себе
некоторую опасность уйти в зону другого локального экстремума, но часто может
быть предпочтительнее из соображений экономиивремени.
Для поиска локальных
экстремумов имеются две встроенные функции, которые могут применяться как в
пределах вычислительного блока, так и автономно.
- Minimize (f, xi, ... ,хn) - вектор
значений аргументов, при которых функция f достигает минимума;
- Maximize (f, xi,... ,хn) -
вектор значений аргументов, при которых функция f достигает максимума;


Kак видно из примеров,
существенное влияние на результат оказывает выбор начального приближения, в
зависимости от чего в качестве ответа выдаются различные локальные экстремумы
Условный экстремум
В задачах на условный экстремум функции минимизации и максимизации должны быть
включены в вычислительный блок, т. е. им должно предшествовать ключевое слово
Given. В промежутке между Given и функцией поиска экстремума с помощью булевых
операторов записываются логические выражения (неравенства, уравнения), задающие
ограничения на значенияаргументов минимизируемой функции. В примере показаны
примеры поиска условного экстремума на различных интервалах, определенных
неравенствами. Сравните результаты работы этого листинга с двумя предыдущими.

Символьное решение
уравнений
|
Некоторые уравнения Mathcad может
разрешить в символьном виде. Для этого существуют три возможности: первая - это использование меню
Symbolics, вторая - использование оператора solve,
x третья - использование блока Given .... Find(...). |
|
Например, запишем квадратный трёхчлен,
выделим переменную x и выберем в меню пункт Symbolics\Variable\Solve. Получим решение в
символьном виде. |
|
Для того, чтобы решение было
записано справа от выражения, необходимо установить флажок в меню
Symbolics\Evaluation Style\Horizontally |
|
|
|
|
|
При использовании оператора →
необходимо иметь в виду, что переменные не должны быть определены заранее,
так попытка раскрытия квадратного уравнения
|
|
однако, квадратный трёхчлен |
|
|
|
раскрывается вполне
удовлетворительно. |



|
Покажем ещё решение для полинома
третьего порядка. |
|
|
|
|
|
|
|
|
|
|
Задания:
1. Решить уравнения разными
способами и проиллюстрировать решение на графике.
а)![]()
б) x2-2x+1.5=0
в)
=0
2. Исследовать на
экстремум и построить график функции ![]()
3. Решить системы
|
а. |
|
|
|
б. |
|
|
|
в. |
|
|
|
г. |
|
|
|
|
д. 0.427x1+3.210x2-1.307x3=2.425,
4.270x1-0.513x2+1.102x3=-0.176,
0.012x1+1.273x2-4.175x3=1.423;